<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      //   es6的时候就有人提出 用同步的方式写异步操作
      //   提出了generator yeil(不好用省略)
      //   es7 有人继续提出 async await 这个终极解决方案
      // 就是用同步的方式写异步的代码

      // async函数的返回值是一个promise对象

      function js_ajax(url) {
        return new Promise((resolve, reject) => {
          var xhr = new XMLHttpRequest();
          xhr.open("get", url, true);
          xhr.send();
          xhr.onreadystatechange = function () {
            if (xhr.readyState == 4) {
              if (xhr.status == 200) {
                var data = JSON.parse(xhr.responseText);
                resolve(data);
              } else {
                reject("404");
              }
            }
          };
        });
      }

      async function getdata() {
        let data = await js_ajax("a.json");
        let data2 = await js_ajax("b.json");
        let data3 = await js_ajax("c.json");
        return data3;
      }

      getdata().then((res) => {
        console.log(res);
      });
      //async解决回调地狱
    </script>
  </body>
</html>
